package org.example;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
import org.springframework.stereotype.Service;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.concurrent.Executor;
import java.util.concurrent.TimeUnit;

// 标记此类为Spring服务类（自动注册到IOC容器）
@Service
public class TaskService {

    // 自动注入Spring容器中的线程池Bean（名称为taskExecutor）
    @Autowired
    private Executor taskExecutor;

    // 执行耗时任务：每1秒输出一次当前时间，共执行10次
    public void executeTimeTask() {
        // 提交任务到线程池
        taskExecutor.execute(() -> {
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            for (int i = 1; i <= 10; i++) {
                try {
                    // 输出当前时间
                    System.out.println("第" + i + "次输出：" + sdf.format(new Date()));
                    // 休眠1秒
                    TimeUnit.SECONDS.sleep(1);
                } catch (InterruptedException e) {
                    Thread.currentThread().interrupt(); // 恢复中断状态
                    e.printStackTrace();
                }
            }
            System.out.println("任务执行完毕！");
        });
    }
}
